// #ifndef VUE3
import Vue from 'vue'
import App from './App'
// 导入store后将其挂载到vue的实例身上（39行）
import store from '@/store/store.js'
//1.导入第三方请求包（可以设置请求拦截器）网址：https://www.npmjs.com/package/@escook/request-miniprogram
import {
	$http
} from '@escook/request-miniprogram'
//2.导入后将其挂在到顶级对象uni上，然后设置他的自定义属性指向导入的成员$http
uni.$http = $http
//3.为$http挂载请求拦截器,让其等于一个处理函数，处理函数的内部我们可以接受到一个形参opint，在这个方法的内部我们
//可以使用uni.showLoading展示loding的效果等
$http.beforeRequest = function(options) {
	uni.showLoading({
		title: '数据加载中...'
	})
	// 支付判断是否是有权限的接口
	if (options.url.indexOf('/my/') !== -1) {
		options.header = {
			// 身份认证的字段值可以直接从 vuex 中进行获取
			Authorization: store.state.m_user.token,
		}
		console.log('拦截器数据', options);
	}
}
//4.当请求完成时我们可以使用相应拦截器来取消loading的效果
$http.afterRequest = function() {
	uni.hideLoading()
}
//5.设置请求根路径（接口前缀）
$http.baseUrl = 'https://api-hmugo-web.itheima.net'

// 6.封装数据请求失败弹窗
uni.$showMsg = function(title = '数据请求失败', duration = 1500) {
	uni.showToast({
		title,
		duration,
		icon: "none"
	})
}
Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
	...App,
	store
})
app.$mount()
// #endif

// #ifdef VUE3
import {
	createSSRApp
} from 'vue'
import App from './App.vue'
export function createApp() {
	const app = createSSRApp(App)
	return {
		app
	}
}
// #endif
